最基础的搭建步骤就是在单个物理机节点部署cuckoo,能够调用配置好的virtual box完成运行任务并产生报告。在搭建好了单个cuckoo之后,可以考虑进阶的分布式搭建。
主要的参考教程
- 很详细的一篇:https://blog.csdn.net/Bingoooooo_/article/details/94248229
- 总体步骤正确的:https://www.jianshu.com/p/ac009f6c2710
单节点沙箱运行方式
. venv/bin/activate 进入虚拟环境。
一个终端运行cuckoo -d;另一个运行cuckoo web
(cuckoo -d开启的是后台分析进程,提交样本的方式下面介绍了很多,但是后台分析进程是基础,没有开启的话无法分析样本的)
web访问提交样本
cuckoo web运行后会给出ip:端口,访问web就可以直接通过网页提交样本,查看报告,调试的时候很方便。能够知道虚拟机是否调用成功了,产生的报告有没有问题。
命令行cuckoo submit提交样本
下发任务并且传参数运行:
cuckoo submit –timeout 600 –package exe –options arguments=’m0nk3y -s 192.168.2.136:5000’ /home/tangmingyu/TEST_CUCKOO/monkey-windows-64.exe
开启cuckoo api
https://cuckoo.readthedocs.io/en/latest/usage/api/#
直接cuckoo api
(venv) tangmingyu@tangmingyu-QiTianM610-D529:~/venv/bin$ cuckoo api
2019-09-18 21:17:27,179 [werkzeug] INFO: * Running on http://localhost:8090/ (Press CTRL+C to quit)
命令行提交样本
通过命令行就可以提交样本自动分析了。
curl -H “Authorization: Bearer bZ0mLmUX2QElehFjI33OOQ” -F file=@/home/tangmingyu/文档/安全沙箱安装/恶意软件样本/test1.exe http://localhost:8090/tasks/create/file
查看cuckoo.conf中的api_token = bZ0mLmUX2QElehFjI33OOQ,把这边注释掉就不需要api_token的验证了,比较省事。
python脚本提交样本
|
|
安装过程遇到的问题
- 运行cuckoo报错ImportError:lib*.so–cannot open shared object file: No such file or directory
1-软链接方式
1.1 找到文件
find / -name lib.so (缺失的动态链接库)
1.2 建立软链接
ln - /path/to/lib.so /usr/lib
1.3 sudo ldconfig
- 运行cuckoo报错AttributeError: Rules instance has no attribute ‘save’
Please pip uninstall yara. It’s very outdated and we’re using yara-python==3.6.3 instead.
pip install MySQL-python报错
先sudo apt-get install libmysqlclient-dev,然后pip install
修改最大打开文件数量
1234567891011121314tangmingyu@tangmingyu-QiTianM610-D529:~$ sudo echo 1000000 > sudo /proc/sys/fs/nr_opentangmingyu@tangmingyu-QiTianM610-D529:~$ ulimit -n1024tangmingyu@tangmingyu-QiTianM610-D529:~$ cat /proc/sys/fs/nr_open1000000tangmingyu@tangmingyu-QiTianM610-D529:~$ sudo vi /etc/security/limits.conftangmingyu@tangmingyu-QiTianM610-D529:~$ ulimit -n1024tangmingyu@tangmingyu-QiTianM610-D529:~$ sudo sh -c "ulimit -n 65535 && exec su $LOGNAME"tangmingyu@tangmingyu-QiTianM610-D529:~$ ulimit -n500000tangmingyu@tangmingyu-QiTianM610-D529:~$ . venv/bin/activate(venv) tangmingyu@tangmingyu-QiTianM610-D529:~$ ulimit -n500000win7虚拟机之前一直连不上外网
1234iptables -P FORWARD ACCEPTiptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPTiptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTiptables -A POSTROUTING -t nat -j MASQUERADE
开启转发功能之后虚拟机可以连接外网了,但是本机可能就baidu都上不了。这时候需要修改一下vi /etc/resolv.conf,改为144.144.144.144
- 提交之后task一直是pending状态,原因是virtual manager的地址写成了virtual box
https://github.com/cuckoosandbox/cuckoo/issues/2346
如果系统没启用root账户,由于 tcpdump 的执行需要 root 权限,则需要以下配置:
12345678sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdumpsudo chmod +s /usr/sbin/tcpdump以上方法都试过,没有用。后来搜到了官方给的,成功了:sudo apt-get install apparmor-utilssudo aa-disable /usr/sbin/tcpdumphttps://cuckoo.sh/docs/faq/index.html#permission-denied-for-tcpdumpmongo数据库的验证
db.auth(‘admin’, ‘admin’) 返回1表示成功验证guest是否成功连接上:
tangmingyu@tangmingyu-QiTianM610-D529:~$ curl 192.168.2.200:8000
{“message”: “Cuckoo Agent!”, “version”: “0.10”, “features”: [“execpy”, “pinning”, “logs”, “largefile”, “unicodepath”]}error fetching configuration file
在虚拟机里一定要以管理员身份运行agent复制虚拟机之后突然要输入用户名和密码了
账号:Administrator;密码为空试一下
数据库
mysql存的是提交任务时间 虚拟机配置之类的信息;mongo存储的是软件提交运行之后,产生的那些分析数据。
##好用的可视化mong数据库工具adminMongo
教程网址:https://www.cnblogs.com/zhangycun/p/10534123.html
开启方式:
cd adminMongo
npm start